生信必会格式:SAM&BAM

您所在的位置:网站首页 windows sam文件查看 生信必会格式:SAM&BAM

生信必会格式:SAM&BAM

2023-12-03 12:26| 来源: 网络整理| 查看: 265

文章目录 前言 SAM一个小例子 Header 部分Alignment 部分必要部分Bitwise FlagMapQ (比对质量)CIGAR String 可选部分 BAMCRAM参考

前言

有时候,我学一些东西,看啊看啊,花了很长时间,觉得自己会了,然而到真正需要的时候,总会捉襟见肘,每每后悔当时为什么不实践😑

SAM

SAM,表示 Sequence Alignment/Map format,以 TAB(制表符)为分隔符的文本文件,可以直接使用less 、head等命令查看。SAM分为两部分,注释信息(Header Section,optional)和比对结果部分 (Alignment Section),如果包含Header部分,Header部分必须在Alignment部分之前。 注释信息:SAM文件产生以及被处理过程的一个记录,规定必须以@开头,用不同的tag表示不同的信息,主要有:@HD,说明符合标准的版本、对比序列的排列顺序;@SQ,参考序列说明;@RG,比对上的序列(read)说明;@PG,使用的程序说明;@CO,任意的说明信息。 比对结果部分,每行必须有11个代表基本比对信息的字段(如比对位置),可选择性包含特定信息的其他字段(比较灵活)

一个小例子 @HD VN:1.0 SO:unsorted @SQ SN:chr1 LN:249250621 @SQ SN:chr2 LN:243199373 @PG ID:Bowtie VN:1.0.0 CL:"bowtie genome/hg19 -q reads/SRR3101251.fastq -m 1 -p 4 -S" SRR3101251.1 0 chr19 9486878 255 49M * 0 0 NTACTCCCACTACTCTCAGATTCAAGCAATCCTCCCACCCTAGCCCACC #1=DDDFFHHHHHIHHIJJJHIJIIJIHIFHJIIJJJJJJJIIJJJJJJ XA:i:1 MD:Z:0A48 NM:i:1 SRR3101251.5 16 chr2 240279787 255 49M * 0 0 CCTGAATCCATCAGAGCAGCCGGGCTGTGACACTCACTGTCATGATGTT JIJJIHIIIIJJJJJJJJJGHJJJJIIHJHICJIGCHHHHHFFFFFCCC XA:i:0 MD:Z:49 NM:i:0 SRR3101251.6 4 * 0 0 * * 0 0 NATTCCCACCTATGAGTGAGAATATGCGGTGTTTGGTTTTTTGTTCTTG #1=DDDFFHHHHHJJJGHIJJJJJJJJJJCGGIIJJIIJJJIJHJIIJJ XM:i:1 Header 部分

上边例子中的Header只是比较有代表性的一部分,Header可以囊括好多好多信息,如果想了解,就翻译翻译下面的图片(截图于SAM格式官方文档),或者直接访问官网文档,里面有详尽的解释:

在这里插入图片描述在这里插入图片描述在这里插入图片描述

Alignment 部分

在我之前,已经有很多博主对官方文档进行了解释,所以我这里就不一一介绍每个位置了,只说明我认为常用的一部分

必要部分

比对部分每行包括11个必须要有的字段,如下图,同样的,这里只重点介绍一部分,如果想详细了解,请参考官方文档 https://samtools.github.io/hts-specs/SAMv1.pdf

Bitwise Flag

就是上图所示的FLAG部分,其每一个部分都可以在下图中找到含义,这部分字段在常规需要过滤的测序数据处理过程中经常会用到: 在这里插入图片描述 应用例子:

ATACseq数据,比对之后,常常需要过滤掉没有比对上的(4 + 8)、PCR重复(1024)、没有通过质控的(512),二次(多次)比对(256)的序列,4+8+1024+512+256=1804,使用samtools工具,通过FLAG过滤:samtools view -@ 20 -bF 1804 -q 20 in.sam -o out.bam,-F此参数将过滤掉所有1804代表的片段。

FLAG的不同组合都会产生一个整数,大部分时候,人类不能一下子就明白该整数的含义,解释起来有点儿困难,所以有人为了方便,专门写了个网页工具:https://broadinstitute.github.io/picard/explain-flags.html,熟悉的人一下子就能看出,这个工具是开发Picard工具的团队制作的,方便生信工作者使用他们的工具过滤数据。

MapQ (比对质量)

引用官方的定义:

MAPQ: Mapping Quality. It equals -10 log10 Pr{mapping position is wrong}, rounded to the nearest integer. A value 255 indicates that the mapping quality is not available.

简单解释一下就是: M A P Q = − 10 × log ⁡ 10 ( 比对出错的概率 ) MAPQ= -10\times \log_{10}(比对出错的概率) MAPQ=−10×log10​(比对出错的概率),然后近似为整数,255表示没有意义,就是用来占位的。从概率的角度来看,每个Read的比对都是对一个真实比对的估计,它是一个随机变量,可能存在错误。错误的概率可以用 Phred 来衡量。假设一条序列的MAPQ的值为mQ,P 表示reads比对错误的概率。如果mQ 的值为 30 ,那么P(比对错误率) 就是 0.1%。嗯……大概是这意思吧。 MapQ的值受算法影响,但都是值越大代表质量越好,在应用过程中经常通过MapQ值,对数据进行过滤,比如上边的例子,-q 20参数的设定就表示,只选择保留MapQ值大于等于 20 的序列,严格一般选 30,松一松就选 10。

CIGAR String

怎么说呢,对于目前的我来说,“CIGAR String” 没有前面提到的两个用的频繁(可能,做可变剪接方向的大佬会用的多一点),只用过对Soft clipping 和 Hard clipping的筛选和分类。按照我的理解,这部分是对比对情况的“编码”,是一种简写的方式。首先定义**Op (operators) **,并将其与数字结合使用,以解释序列的哪一部分是mapped,哪一部分不是,以及两者之间的其他所有关系,而不是列出整个比对情况。Op的定义如下图所示,直接从一个网站上截的图: 在这里插入图片描述 一个例子:

比对之前: 参考序列位置:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 参考序列: C C A T A C T G A A C T G A C T A A C 测序Read:ACTAGAATGGCT 比对之后 参考序列位置:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 参考序列: C C A T A C T G A A C T G A C T A A C 测序Read: A C T A G A A T G G C T

根据Op的定义,就会得到:

POS:5 CIGAR:3M1I3M1D5M

意思就是从参考序列的五号位开始,有3个Match,接着1个Insertion,又3个Match,1个Deletion,然后5个Match

还有其他的部分我就不一一介绍了,还是那句话,感兴趣的直接看官方文档,或者其他博主的介绍

可选部分

…………就先不填充内容了,有兴趣的可以直接去官方文档,或者其他博主的介绍哈

BAM

BAM文件,内容和 SAM几乎一样,可以认为就是SAM文件的二进制编码(压缩)形式,意味着BAM有更小,读写速度更快。……此处省略N字(就不详细展开了)

CRAM

一种相对较新的格式,与BAM非常相似,它也保留了与SAM相同的信息并进行了压缩,但它存储信息的方式要智能得多。很有前途,如果感兴趣,可以阅读CRAM。

参考 https://samtools.github.io/hts-specs/SAMv1.pdfhttps://www.drive5.com/usearch/manual/cigar.htmlhttps://genome.sph.umich.edu/wiki/SAM#What_is_a_CIGAR.3Fhttps://samtools.github.io/hts-specs/CRAMv3.pdf


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3